using System.Diagnostics.Contracts;
using Presenter = YaTools.Yaml.Dump.Presenter;
using Pending = YaTools.Yaml.Dump.Pending;

namespace YaTools.Yaml.AbstractContracts
{
    [ContractClassFor(typeof (Presenter))]
    internal abstract class PresenterContract : Presenter
    {
        public override void PresentNull(Dump dump)
        {
            Contract.Requires(dump != null);
        }

        public override void PresentScalar(Dump dump, string value, Tag tag)
        {
            Contract.Requires(dump != null);
            Contract.Requires(value != null);
        }

        public override void PresentAlias(Dump dump, string anchor)
        {
            Contract.Requires(dump != null);
        }

        public override void PresentAnchor(Dump dump, string anchor)
        {
            Contract.Requires(dump != null);
            Contract.Requires(anchor != null);
        }
    }
}